/**
 * 
 */
package pokerclient.core;

import common.Card;
import common.GameAction;

/**
 * @author Group 18
 * 
 */
public interface IPlayer {

	/**
	 * Set this player's hand
	 * 
	 * @param hand
	 *            an array of cards to be used as a hand
	 */
	void setHand(Card[] hand);

	/**
	 * get the player's hand
	 * 
	 * @return the hand of the player
	 */
	Card[] getHand();

	/**
	 * get the player's gameaction
	 * 
	 * @return the current gameaction of this player
	 */
	GameAction getAction();

	/**
	 * get player's amount in pot
	 * 
	 * @return the value of the player's amount in pot
	 */
	int getAmountInPot();

	/**
	 * set this player's nickname
	 * 
	 * @param nickname
	 *            the nickname to set
	 */
	void setNickname(String nickname);

	/**
	 * 
	 * @return
	 */
	String getNickname();

	/**
	 * set this player's position
	 * @param position the position to set 
	 */
	void setPosition(int position);

	/**
	 * get this player's position 
	 * @return the current position of the player
	 */
	int getPosition();

	/**
	 * set this player's gameaction
	 * @param action the GameAction to set
	 */
	void setAction(GameAction action);

	/**
	 * get this player's stack 
	 * @return the value of the player's stack
	 */
	int getStack();

	/**
	 * set amount in pot
	 * @param amountInPot the value to set
	 */
	void setAmountInPot(int amountInPot);

	/**
	 * set the stack
	 * @param stack the value to set
	 */
	void setStack(int stack);

}
